/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.taobao.ibatiside.model.mapperv3.impl;

import org.eclipse.emf.common.notify.NotificationChain;

import org.eclipse.emf.common.util.EMap;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.InternalEObject;

import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;

import org.eclipse.emf.ecore.util.BasicFeatureMap;
import org.eclipse.emf.ecore.util.EcoreEMap;
import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.util.InternalEList;

import org.taobao.ibatiside.model.mapperv3.Arg;
import org.taobao.ibatiside.model.mapperv3.Association;
import org.taobao.ibatiside.model.mapperv3.Cache;
import org.taobao.ibatiside.model.mapperv3.CacheRef;
import org.taobao.ibatiside.model.mapperv3.Case;
import org.taobao.ibatiside.model.mapperv3.Choose;
import org.taobao.ibatiside.model.mapperv3.Collection;
import org.taobao.ibatiside.model.mapperv3.Constructor;
import org.taobao.ibatiside.model.mapperv3.Delete;
import org.taobao.ibatiside.model.mapperv3.Discriminator;
import org.taobao.ibatiside.model.mapperv3.DocumentRoot;
import org.taobao.ibatiside.model.mapperv3.Foreach;
import org.taobao.ibatiside.model.mapperv3.Id;
import org.taobao.ibatiside.model.mapperv3.IdArg;
import org.taobao.ibatiside.model.mapperv3.If;
import org.taobao.ibatiside.model.mapperv3.Include;
import org.taobao.ibatiside.model.mapperv3.Insert;
import org.taobao.ibatiside.model.mapperv3.Mapper;
import org.taobao.ibatiside.model.mapperv3.Mapperv3Package;
import org.taobao.ibatiside.model.mapperv3.Otherwise;
import org.taobao.ibatiside.model.mapperv3.Parameter;
import org.taobao.ibatiside.model.mapperv3.ParameterMap;
import org.taobao.ibatiside.model.mapperv3.Property;
import org.taobao.ibatiside.model.mapperv3.Result;
import org.taobao.ibatiside.model.mapperv3.ResultMap;
import org.taobao.ibatiside.model.mapperv3.Select;
import org.taobao.ibatiside.model.mapperv3.SelectKey;
import org.taobao.ibatiside.model.mapperv3.Set;
import org.taobao.ibatiside.model.mapperv3.Sql;
import org.taobao.ibatiside.model.mapperv3.Trim;
import org.taobao.ibatiside.model.mapperv3.TypeAlias;
import org.taobao.ibatiside.model.mapperv3.Update;
import org.taobao.ibatiside.model.mapperv3.When;
import org.taobao.ibatiside.model.mapperv3.Where;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Document Root</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getMixed <em>Mixed</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getArg <em>Arg</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getAssociation <em>Association</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getCache <em>Cache</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getCacheRef <em>Cache Ref</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getCase <em>Case</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getChoose <em>Choose</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getCollection <em>Collection</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getConstructor <em>Constructor</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getDelete <em>Delete</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getDiscriminator <em>Discriminator</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getForeach <em>Foreach</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getId <em>Id</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getIdArg <em>Id Arg</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getIf <em>If</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getInclude <em>Include</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getInsert <em>Insert</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getMapper <em>Mapper</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getOtherwise <em>Otherwise</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getParameter <em>Parameter</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getParameterMap <em>Parameter Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getProperty <em>Property</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getResult <em>Result</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getResultMap <em>Result Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getSelect <em>Select</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getSelectKey <em>Select Key</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getSet <em>Set</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getSql <em>Sql</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getTrim <em>Trim</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getTypeAlias <em>Type Alias</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getUpdate <em>Update</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getWhen <em>When</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.impl.DocumentRootImpl#getWhere <em>Where</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class DocumentRootImpl extends EObjectImpl implements DocumentRoot {
	/**
	 * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMixed()
	 * @generated
	 * @ordered
	 */
	protected FeatureMap mixed;

	/**
	 * The cached value of the '{@link #getXMLNSPrefixMap() <em>XMLNS Prefix Map</em>}' map.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXMLNSPrefixMap()
	 * @generated
	 * @ordered
	 */
	protected EMap<String, String> xMLNSPrefixMap;

	/**
	 * The cached value of the '{@link #getXSISchemaLocation() <em>XSI Schema Location</em>}' map.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getXSISchemaLocation()
	 * @generated
	 * @ordered
	 */
	protected EMap<String, String> xSISchemaLocation;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DocumentRootImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return Mapperv3Package.Literals.DOCUMENT_ROOT;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public FeatureMap getMixed() {
		if (mixed == null) {
			mixed = new BasicFeatureMap(this, Mapperv3Package.DOCUMENT_ROOT__MIXED);
		}
		return mixed;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EMap<String, String> getXMLNSPrefixMap() {
		if (xMLNSPrefixMap == null) {
			xMLNSPrefixMap = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, Mapperv3Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
		}
		return xMLNSPrefixMap;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EMap<String, String> getXSISchemaLocation() {
		if (xSISchemaLocation == null) {
			xSISchemaLocation = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, Mapperv3Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
		}
		return xSISchemaLocation;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Arg getArg() {
		return (Arg)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__ARG, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetArg(Arg newArg, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__ARG, newArg, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setArg(Arg newArg) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__ARG, newArg);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Association getAssociation() {
		return (Association)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__ASSOCIATION, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetAssociation(Association newAssociation, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__ASSOCIATION, newAssociation, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setAssociation(Association newAssociation) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__ASSOCIATION, newAssociation);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Cache getCache() {
		return (Cache)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__CACHE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetCache(Cache newCache, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__CACHE, newCache, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setCache(Cache newCache) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__CACHE, newCache);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public CacheRef getCacheRef() {
		return (CacheRef)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__CACHE_REF, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetCacheRef(CacheRef newCacheRef, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__CACHE_REF, newCacheRef, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setCacheRef(CacheRef newCacheRef) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__CACHE_REF, newCacheRef);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Case getCase() {
		return (Case)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__CASE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetCase(Case newCase, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__CASE, newCase, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setCase(Case newCase) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__CASE, newCase);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Choose getChoose() {
		return (Choose)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__CHOOSE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetChoose(Choose newChoose, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__CHOOSE, newChoose, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setChoose(Choose newChoose) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__CHOOSE, newChoose);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Collection getCollection() {
		return (Collection)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__COLLECTION, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetCollection(Collection newCollection, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__COLLECTION, newCollection, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setCollection(Collection newCollection) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__COLLECTION, newCollection);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Constructor getConstructor() {
		return (Constructor)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__CONSTRUCTOR, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetConstructor(Constructor newConstructor, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__CONSTRUCTOR, newConstructor, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setConstructor(Constructor newConstructor) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__CONSTRUCTOR, newConstructor);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Delete getDelete() {
		return (Delete)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__DELETE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetDelete(Delete newDelete, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__DELETE, newDelete, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setDelete(Delete newDelete) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__DELETE, newDelete);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Discriminator getDiscriminator() {
		return (Discriminator)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__DISCRIMINATOR, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetDiscriminator(Discriminator newDiscriminator, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__DISCRIMINATOR, newDiscriminator, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setDiscriminator(Discriminator newDiscriminator) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__DISCRIMINATOR, newDiscriminator);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Foreach getForeach() {
		return (Foreach)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__FOREACH, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetForeach(Foreach newForeach, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__FOREACH, newForeach, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setForeach(Foreach newForeach) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__FOREACH, newForeach);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Id getId() {
		return (Id)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__ID, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetId(Id newId, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__ID, newId, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setId(Id newId) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__ID, newId);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public IdArg getIdArg() {
		return (IdArg)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__ID_ARG, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetIdArg(IdArg newIdArg, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__ID_ARG, newIdArg, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setIdArg(IdArg newIdArg) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__ID_ARG, newIdArg);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public If getIf() {
		return (If)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__IF, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetIf(If newIf, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__IF, newIf, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setIf(If newIf) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__IF, newIf);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Include getInclude() {
		return (Include)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__INCLUDE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetInclude(Include newInclude, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__INCLUDE, newInclude, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setInclude(Include newInclude) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__INCLUDE, newInclude);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Insert getInsert() {
		return (Insert)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__INSERT, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetInsert(Insert newInsert, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__INSERT, newInsert, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setInsert(Insert newInsert) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__INSERT, newInsert);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Mapper getMapper() {
		return (Mapper)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__MAPPER, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetMapper(Mapper newMapper, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__MAPPER, newMapper, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMapper(Mapper newMapper) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__MAPPER, newMapper);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Otherwise getOtherwise() {
		return (Otherwise)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__OTHERWISE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetOtherwise(Otherwise newOtherwise, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__OTHERWISE, newOtherwise, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setOtherwise(Otherwise newOtherwise) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__OTHERWISE, newOtherwise);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Parameter getParameter() {
		return (Parameter)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__PARAMETER, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetParameter(Parameter newParameter, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__PARAMETER, newParameter, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParameter(Parameter newParameter) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__PARAMETER, newParameter);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ParameterMap getParameterMap() {
		return (ParameterMap)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__PARAMETER_MAP, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetParameterMap(ParameterMap newParameterMap, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__PARAMETER_MAP, newParameterMap, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParameterMap(ParameterMap newParameterMap) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__PARAMETER_MAP, newParameterMap);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Property getProperty() {
		return (Property)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__PROPERTY, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetProperty(Property newProperty, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__PROPERTY, newProperty, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setProperty(Property newProperty) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__PROPERTY, newProperty);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Result getResult() {
		return (Result)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__RESULT, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetResult(Result newResult, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__RESULT, newResult, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setResult(Result newResult) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__RESULT, newResult);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ResultMap getResultMap() {
		return (ResultMap)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__RESULT_MAP, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetResultMap(ResultMap newResultMap, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__RESULT_MAP, newResultMap, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setResultMap(ResultMap newResultMap) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__RESULT_MAP, newResultMap);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Select getSelect() {
		return (Select)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__SELECT, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetSelect(Select newSelect, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__SELECT, newSelect, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSelect(Select newSelect) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__SELECT, newSelect);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SelectKey getSelectKey() {
		return (SelectKey)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__SELECT_KEY, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetSelectKey(SelectKey newSelectKey, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__SELECT_KEY, newSelectKey, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSelectKey(SelectKey newSelectKey) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__SELECT_KEY, newSelectKey);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Set getSet() {
		return (Set)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__SET, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetSet(Set newSet, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__SET, newSet, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSet(Set newSet) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__SET, newSet);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Sql getSql() {
		return (Sql)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__SQL, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetSql(Sql newSql, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__SQL, newSql, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSql(Sql newSql) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__SQL, newSql);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Trim getTrim() {
		return (Trim)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__TRIM, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetTrim(Trim newTrim, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__TRIM, newTrim, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTrim(Trim newTrim) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__TRIM, newTrim);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public TypeAlias getTypeAlias() {
		return (TypeAlias)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__TYPE_ALIAS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetTypeAlias(TypeAlias newTypeAlias, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__TYPE_ALIAS, newTypeAlias, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTypeAlias(TypeAlias newTypeAlias) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__TYPE_ALIAS, newTypeAlias);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Update getUpdate() {
		return (Update)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__UPDATE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetUpdate(Update newUpdate, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__UPDATE, newUpdate, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setUpdate(Update newUpdate) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__UPDATE, newUpdate);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public When getWhen() {
		return (When)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__WHEN, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetWhen(When newWhen, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__WHEN, newWhen, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setWhen(When newWhen) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__WHEN, newWhen);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Where getWhere() {
		return (Where)getMixed().get(Mapperv3Package.Literals.DOCUMENT_ROOT__WHERE, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public NotificationChain basicSetWhere(Where newWhere, NotificationChain msgs) {
		return ((FeatureMap.Internal)getMixed()).basicAdd(Mapperv3Package.Literals.DOCUMENT_ROOT__WHERE, newWhere, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setWhere(Where newWhere) {
		((FeatureMap.Internal)getMixed()).set(Mapperv3Package.Literals.DOCUMENT_ROOT__WHERE, newWhere);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
		switch (featureID) {
			case Mapperv3Package.DOCUMENT_ROOT__MIXED:
				return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				return ((InternalEList<?>)getXMLNSPrefixMap()).basicRemove(otherEnd, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				return ((InternalEList<?>)getXSISchemaLocation()).basicRemove(otherEnd, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__ARG:
				return basicSetArg(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__ASSOCIATION:
				return basicSetAssociation(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__CACHE:
				return basicSetCache(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__CACHE_REF:
				return basicSetCacheRef(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__CASE:
				return basicSetCase(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__CHOOSE:
				return basicSetChoose(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__COLLECTION:
				return basicSetCollection(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__CONSTRUCTOR:
				return basicSetConstructor(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__DELETE:
				return basicSetDelete(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__DISCRIMINATOR:
				return basicSetDiscriminator(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__FOREACH:
				return basicSetForeach(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__ID:
				return basicSetId(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__ID_ARG:
				return basicSetIdArg(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__IF:
				return basicSetIf(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__INCLUDE:
				return basicSetInclude(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__INSERT:
				return basicSetInsert(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__MAPPER:
				return basicSetMapper(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__OTHERWISE:
				return basicSetOtherwise(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER:
				return basicSetParameter(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER_MAP:
				return basicSetParameterMap(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__PROPERTY:
				return basicSetProperty(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__RESULT:
				return basicSetResult(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__RESULT_MAP:
				return basicSetResultMap(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__SELECT:
				return basicSetSelect(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__SELECT_KEY:
				return basicSetSelectKey(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__SET:
				return basicSetSet(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__SQL:
				return basicSetSql(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__TRIM:
				return basicSetTrim(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__TYPE_ALIAS:
				return basicSetTypeAlias(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__UPDATE:
				return basicSetUpdate(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__WHEN:
				return basicSetWhen(null, msgs);
			case Mapperv3Package.DOCUMENT_ROOT__WHERE:
				return basicSetWhere(null, msgs);
		}
		return super.eInverseRemove(otherEnd, featureID, msgs);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case Mapperv3Package.DOCUMENT_ROOT__MIXED:
				if (coreType) return getMixed();
				return ((FeatureMap.Internal)getMixed()).getWrapper();
			case Mapperv3Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				if (coreType) return getXMLNSPrefixMap();
				else return getXMLNSPrefixMap().map();
			case Mapperv3Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				if (coreType) return getXSISchemaLocation();
				else return getXSISchemaLocation().map();
			case Mapperv3Package.DOCUMENT_ROOT__ARG:
				return getArg();
			case Mapperv3Package.DOCUMENT_ROOT__ASSOCIATION:
				return getAssociation();
			case Mapperv3Package.DOCUMENT_ROOT__CACHE:
				return getCache();
			case Mapperv3Package.DOCUMENT_ROOT__CACHE_REF:
				return getCacheRef();
			case Mapperv3Package.DOCUMENT_ROOT__CASE:
				return getCase();
			case Mapperv3Package.DOCUMENT_ROOT__CHOOSE:
				return getChoose();
			case Mapperv3Package.DOCUMENT_ROOT__COLLECTION:
				return getCollection();
			case Mapperv3Package.DOCUMENT_ROOT__CONSTRUCTOR:
				return getConstructor();
			case Mapperv3Package.DOCUMENT_ROOT__DELETE:
				return getDelete();
			case Mapperv3Package.DOCUMENT_ROOT__DISCRIMINATOR:
				return getDiscriminator();
			case Mapperv3Package.DOCUMENT_ROOT__FOREACH:
				return getForeach();
			case Mapperv3Package.DOCUMENT_ROOT__ID:
				return getId();
			case Mapperv3Package.DOCUMENT_ROOT__ID_ARG:
				return getIdArg();
			case Mapperv3Package.DOCUMENT_ROOT__IF:
				return getIf();
			case Mapperv3Package.DOCUMENT_ROOT__INCLUDE:
				return getInclude();
			case Mapperv3Package.DOCUMENT_ROOT__INSERT:
				return getInsert();
			case Mapperv3Package.DOCUMENT_ROOT__MAPPER:
				return getMapper();
			case Mapperv3Package.DOCUMENT_ROOT__OTHERWISE:
				return getOtherwise();
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER:
				return getParameter();
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER_MAP:
				return getParameterMap();
			case Mapperv3Package.DOCUMENT_ROOT__PROPERTY:
				return getProperty();
			case Mapperv3Package.DOCUMENT_ROOT__RESULT:
				return getResult();
			case Mapperv3Package.DOCUMENT_ROOT__RESULT_MAP:
				return getResultMap();
			case Mapperv3Package.DOCUMENT_ROOT__SELECT:
				return getSelect();
			case Mapperv3Package.DOCUMENT_ROOT__SELECT_KEY:
				return getSelectKey();
			case Mapperv3Package.DOCUMENT_ROOT__SET:
				return getSet();
			case Mapperv3Package.DOCUMENT_ROOT__SQL:
				return getSql();
			case Mapperv3Package.DOCUMENT_ROOT__TRIM:
				return getTrim();
			case Mapperv3Package.DOCUMENT_ROOT__TYPE_ALIAS:
				return getTypeAlias();
			case Mapperv3Package.DOCUMENT_ROOT__UPDATE:
				return getUpdate();
			case Mapperv3Package.DOCUMENT_ROOT__WHEN:
				return getWhen();
			case Mapperv3Package.DOCUMENT_ROOT__WHERE:
				return getWhere();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case Mapperv3Package.DOCUMENT_ROOT__MIXED:
				((FeatureMap.Internal)getMixed()).set(newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				((EStructuralFeature.Setting)getXMLNSPrefixMap()).set(newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				((EStructuralFeature.Setting)getXSISchemaLocation()).set(newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ARG:
				setArg((Arg)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ASSOCIATION:
				setAssociation((Association)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CACHE:
				setCache((Cache)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CACHE_REF:
				setCacheRef((CacheRef)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CASE:
				setCase((Case)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CHOOSE:
				setChoose((Choose)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__COLLECTION:
				setCollection((Collection)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CONSTRUCTOR:
				setConstructor((Constructor)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__DELETE:
				setDelete((Delete)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__DISCRIMINATOR:
				setDiscriminator((Discriminator)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__FOREACH:
				setForeach((Foreach)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ID:
				setId((Id)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ID_ARG:
				setIdArg((IdArg)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__IF:
				setIf((If)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__INCLUDE:
				setInclude((Include)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__INSERT:
				setInsert((Insert)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__MAPPER:
				setMapper((Mapper)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__OTHERWISE:
				setOtherwise((Otherwise)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER:
				setParameter((Parameter)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER_MAP:
				setParameterMap((ParameterMap)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__PROPERTY:
				setProperty((Property)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__RESULT:
				setResult((Result)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__RESULT_MAP:
				setResultMap((ResultMap)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SELECT:
				setSelect((Select)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SELECT_KEY:
				setSelectKey((SelectKey)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SET:
				setSet((Set)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SQL:
				setSql((Sql)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__TRIM:
				setTrim((Trim)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__TYPE_ALIAS:
				setTypeAlias((TypeAlias)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__UPDATE:
				setUpdate((Update)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__WHEN:
				setWhen((When)newValue);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__WHERE:
				setWhere((Where)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case Mapperv3Package.DOCUMENT_ROOT__MIXED:
				getMixed().clear();
				return;
			case Mapperv3Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				getXMLNSPrefixMap().clear();
				return;
			case Mapperv3Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				getXSISchemaLocation().clear();
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ARG:
				setArg((Arg)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ASSOCIATION:
				setAssociation((Association)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CACHE:
				setCache((Cache)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CACHE_REF:
				setCacheRef((CacheRef)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CASE:
				setCase((Case)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CHOOSE:
				setChoose((Choose)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__COLLECTION:
				setCollection((Collection)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__CONSTRUCTOR:
				setConstructor((Constructor)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__DELETE:
				setDelete((Delete)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__DISCRIMINATOR:
				setDiscriminator((Discriminator)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__FOREACH:
				setForeach((Foreach)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ID:
				setId((Id)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__ID_ARG:
				setIdArg((IdArg)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__IF:
				setIf((If)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__INCLUDE:
				setInclude((Include)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__INSERT:
				setInsert((Insert)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__MAPPER:
				setMapper((Mapper)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__OTHERWISE:
				setOtherwise((Otherwise)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER:
				setParameter((Parameter)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER_MAP:
				setParameterMap((ParameterMap)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__PROPERTY:
				setProperty((Property)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__RESULT:
				setResult((Result)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__RESULT_MAP:
				setResultMap((ResultMap)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SELECT:
				setSelect((Select)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SELECT_KEY:
				setSelectKey((SelectKey)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SET:
				setSet((Set)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__SQL:
				setSql((Sql)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__TRIM:
				setTrim((Trim)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__TYPE_ALIAS:
				setTypeAlias((TypeAlias)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__UPDATE:
				setUpdate((Update)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__WHEN:
				setWhen((When)null);
				return;
			case Mapperv3Package.DOCUMENT_ROOT__WHERE:
				setWhere((Where)null);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case Mapperv3Package.DOCUMENT_ROOT__MIXED:
				return mixed != null && !mixed.isEmpty();
			case Mapperv3Package.DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
				return xMLNSPrefixMap != null && !xMLNSPrefixMap.isEmpty();
			case Mapperv3Package.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
				return xSISchemaLocation != null && !xSISchemaLocation.isEmpty();
			case Mapperv3Package.DOCUMENT_ROOT__ARG:
				return getArg() != null;
			case Mapperv3Package.DOCUMENT_ROOT__ASSOCIATION:
				return getAssociation() != null;
			case Mapperv3Package.DOCUMENT_ROOT__CACHE:
				return getCache() != null;
			case Mapperv3Package.DOCUMENT_ROOT__CACHE_REF:
				return getCacheRef() != null;
			case Mapperv3Package.DOCUMENT_ROOT__CASE:
				return getCase() != null;
			case Mapperv3Package.DOCUMENT_ROOT__CHOOSE:
				return getChoose() != null;
			case Mapperv3Package.DOCUMENT_ROOT__COLLECTION:
				return getCollection() != null;
			case Mapperv3Package.DOCUMENT_ROOT__CONSTRUCTOR:
				return getConstructor() != null;
			case Mapperv3Package.DOCUMENT_ROOT__DELETE:
				return getDelete() != null;
			case Mapperv3Package.DOCUMENT_ROOT__DISCRIMINATOR:
				return getDiscriminator() != null;
			case Mapperv3Package.DOCUMENT_ROOT__FOREACH:
				return getForeach() != null;
			case Mapperv3Package.DOCUMENT_ROOT__ID:
				return getId() != null;
			case Mapperv3Package.DOCUMENT_ROOT__ID_ARG:
				return getIdArg() != null;
			case Mapperv3Package.DOCUMENT_ROOT__IF:
				return getIf() != null;
			case Mapperv3Package.DOCUMENT_ROOT__INCLUDE:
				return getInclude() != null;
			case Mapperv3Package.DOCUMENT_ROOT__INSERT:
				return getInsert() != null;
			case Mapperv3Package.DOCUMENT_ROOT__MAPPER:
				return getMapper() != null;
			case Mapperv3Package.DOCUMENT_ROOT__OTHERWISE:
				return getOtherwise() != null;
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER:
				return getParameter() != null;
			case Mapperv3Package.DOCUMENT_ROOT__PARAMETER_MAP:
				return getParameterMap() != null;
			case Mapperv3Package.DOCUMENT_ROOT__PROPERTY:
				return getProperty() != null;
			case Mapperv3Package.DOCUMENT_ROOT__RESULT:
				return getResult() != null;
			case Mapperv3Package.DOCUMENT_ROOT__RESULT_MAP:
				return getResultMap() != null;
			case Mapperv3Package.DOCUMENT_ROOT__SELECT:
				return getSelect() != null;
			case Mapperv3Package.DOCUMENT_ROOT__SELECT_KEY:
				return getSelectKey() != null;
			case Mapperv3Package.DOCUMENT_ROOT__SET:
				return getSet() != null;
			case Mapperv3Package.DOCUMENT_ROOT__SQL:
				return getSql() != null;
			case Mapperv3Package.DOCUMENT_ROOT__TRIM:
				return getTrim() != null;
			case Mapperv3Package.DOCUMENT_ROOT__TYPE_ALIAS:
				return getTypeAlias() != null;
			case Mapperv3Package.DOCUMENT_ROOT__UPDATE:
				return getUpdate() != null;
			case Mapperv3Package.DOCUMENT_ROOT__WHEN:
				return getWhen() != null;
			case Mapperv3Package.DOCUMENT_ROOT__WHERE:
				return getWhere() != null;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (mixed: ");
		result.append(mixed);
		result.append(')');
		return result.toString();
	}

} //DocumentRootImpl
